1. General Comments
The following are notes from the testing event. Vendors are flagged as A, B, C, etc. to keep the details private, but to reflect the kinds of problems noted during testing.
The following table is the testing script used for CalDAV testing. Comments below will make reference to the numbers corresponding to this table.
1. | Event creation. |
---|---|
1.1. | Create new single-instance meeting titled “Meeting 1.1” with the location “Durham”. |
1.2. | Create new meeting titled “Meeting 1.2” recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks. |
1.3. | Create new single-instance meeting titled “Meeting 1.3” with 2 other attendees. |
1.4. | Create new single-instance meeting titled “Meeting 1.4” with an alarm set to trigger 15 minutes prior to the schedule time of the meeting. |
2. | Event modification |
2.1. | Modify the title of meeting “Meeting 1.1” to “Meeting 1.1bis”. |
2.2. | Modify the location of the meeting “Meeting 1.1bis” to “Seattle bis”. |
2.3. | Reschedule meeting “Meeting 1.1bis” to the next day. |
2.4. | Add an attendee to “Meeting 1.1bis”. |
2.5. | Add an alarm to “Meeting 1.1bis”. |
2.6. | Modify the title of the 1st instance of the recurring meeting created in 1.2. |
2.7. | Modify the participation status of the 1st attendee in meeting 1.3 to |
2.8. | Cancel the 4th instance of the recurring meeting created in 1.2. |
2.9. | One client changes “Meeting 1.1bis” to a different time, second client ‘refreshes’ its display to see the modification. |
3. | Event retrieval |
3.1. | calendar-query |
3.1.1. | No filtering (match everything) |
3.1.1.1. | Query all components and return all data. (tests |
3.1.1.2. | Query all components and return ETag WebDAV property and all data. (tests |
3.1.1.3. | Query all components and return just entire |
3.1.1.4. | Query all components and return |
3.1.2. | time-range filtering |
3.1.2.1. | Query all components within a one day time-range and return all data. Make sure that there is a recurring event that starts prior to the chosen time-range but has one non-overridden instance within the time-range. (tests |
3.1.2.2. | Query all components within a one week time-range and return just entire |
3.1.3. | component based filtering |
3.1.3.1. | Query all components that contain an embedded |
3.1.3.2. | Query all components that contain an embedded |
3.1.4. | property based filtering |
3.1.4.1. | Query all components that contain any |
3.1.4.2. | Query all components that contain an |
3.1.4.3. | Query all components that contain an |
3.1.5. | parameter based filtering |
3.1.5.1. | Query all components that contain a |
3.1.5.2. | Query all components that contain an |
3.2. | calendar-multiget |
3.2.1. | Query a specific href and return all data. (tests |
3.2.2. | Query multiple hrefs (some of which do not exist) and return all data. (tests |
3.2.3. | Query a specific href and return ETag WebDAV property and all data. (tests |
3.2.4. | Query multiple hrefs (some of which do not exist) and return ETag WebDAV property and all data. (tests |
3.2.5. | Query a specific href and return |
3.2.6. | Query multiple hrefs (some of which do not exist) and return |
4. | Event deletion |
4.1. | Delete a single non-recurring meeting. |
4.2. | Delete a single recurring meeting with no overridden instances. |
4.3. | Delete a single recurring meeting with overridden instances. |
4.4. | Delete a non-overridden instance of a recurring meeting. |
4.5. | Delete an overridden instance of a recurring meeting. |
5. | Access Control |
5.1. | View access control details on current user’s main calendar. |
5.2. | Change access control details on current user’s main calendar to add another user with read-only access. Verify that other user can view the calendar but not change it. |
5.3. | Change access control details on current user’s main calendar to add another user with read-write access. Verify that other user can view the calendar and change it. Verify that changes done by one user are seen by the other. |
5.4. | Remove another user’s access to the current user’s main calendar and verify they can no longer access the calendar. |
6. | Calendar Management |
6.1 | Browse the list of calendars on the server, including the current user’s personal calendars. |
6.2 | Create a new calendar in the current user’s personal calendar space. |
6.3 | Create a regular collection in the current user’s personal calendar space. |
6.4 | Create a new calendar inside the collection created in 6.3. |
6.5 | Delete the calendar created in 6.2. |
6.6 | Delete the collection created in 6.3. |
7. | Free Busy Reports |
Setup | Create a new calendar and populate it with the following for one week: Event on Monday, 9 am — 11 am, recurs every day for five times |
7.1 | Run a free-busy report for the entire week. |
7.1.1 | Verify two |
7.1.2 | Verify two |
7.1.3 | Verify four |
7.1.4 | Verify two |
7.1.5 | Verify two |
8. | Scheduling |
Setup | Three user accounts user1 (role Organizer), user2 (role Attendee), user3 (role Attendee) provisioned with suitable principal properties for calendar home, inbox, outbox and user addresses. |
8.1 | Organizer (user1) sends non-recurring message invite for Monday at 9am (1 hour) to each attendee. Verify that each attendee Inbox receives a copy of the invite. |
8.2 | Attendee (user2) accepts invite and sends back reply. Verify that reply is placed in Organizer Inbox. |
8.3 | Organizer (user1) updates invite with user2 accept state and resends invite. Verify that each attendee Inbox receives a copy of the new invite. |
8.4 | Attendee (user3) accepts updated invite and sends back reply. Verify that reply is placed in Organizer Inbox. |
8.5 | Organizer (user1) updates invite with user3 accept state and resends invite. Verify that each attendee Inbox receives a copy of the new invite. |
8.6 | Organizer (user1) cancels the invite. Verify that each attendee Inbox receives the cancellation. |